
/*
 * 每次从终端发过来的请求对象
 * 是 req,res,next 等等的进一步封装
 */

import {Action} from "./Action";
import {EasyACtxHandle} from "./EasyACtxHandle";

export class EasyACtx {
    [x: string]: any;
    constructor(req,res,next){
        this.req = req;
        this.res = res;
        this.next = next;
    }

    //请求流的控制
    public next:()=>void = null; // 这个是原声express 的

    //基本内置对象
    public req = null;   //express req
    public res = null;   // express res
    public app = null;  //全局配置信息等
    public action:Action = null;  //所在的action
    public handle:EasyACtxHandle = null;//正在处理此请求的处理器

    //框架处理结束后，对外的输出的，（json 返回，或者用于模板渲染 html）
    public mm:any = {
        code:0,
        msg:"ok",
    };

    public setcm(code:number,msg:string){
        this.mm.code = code;
        this.mm.msg = msg;
    }

    //public params:any = {};//参数存储器

    //action 之间传递消息用
    public store:any = {};

    //附加属性
    public isEnd = false; //决定下一个 EasyACtxHandle 是否继续执行

    public startTime = new Date().getTime();

}


